/*
 * client.c
 * projet Unix
 *
 * @authors Dogru Ismaïl <is.dogru@gmail.com>
 * @authors Pauchet Antoni <antonipauchet@gmail.com>
 *
 */

#include "client.h"

int main(int argc, char *argv[]) {

	int sck, nths, port;

	struct sockaddr_in serv_addr;
	struct hostent *host;
	char * inetntoa;

	switch (argc) {
	default:
		fprintf(stderr, "Usage: %s nomHote portHote [nomFichier]\n", argv[0]);
		exit(2);
		break;
	case 4:
		if (freopen(argv[3], "w", stderr) == NULL) {
			fprintf(stderr, "Erreur d'ouverture de %s\n", argv[3]);
			exit(2);
		}
	case 3:
		if (verifierNumPort(argv[2]) == -1) {
			fprintf(stderr, "Numero de port invalide : %s\n", argv[2]);
			exit(2);
		}
		break;
	}

	/* creation du socket utilise pour se connecter au serveur (voir connexion.c)*/
	sck = createSocket();
	/* resolution du nom d'hote en adresse ip*/
	host = initHost(argv[1]);
	/* reception de la structure d'adresse reseau initialisee */
	port = atoi(argv[2]);

	serv_addr = (*initClientAddress(port, host));

	/* Tentative de connexion au serveur */
	startConnection(sck, &serv_addr);
	printf("Connexion en cours.\n");

	inetntoa = inet_ntoa(serv_addr.sin_addr);
	nths = ntohs(serv_addr.sin_port);
	printf("Connecte au serveur depuis: %s:%d \n", inetntoa, nths);

	/* Lancement d'une partie côte joueur */
	domemo(sck);

	exit(0);
}/* Fin du programme client */
